From 9d7b4351d3bb5c744db311cffa57ba3ebb583327 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Fri, 3 Nov 2017 16:28:00 +0000 Subject: [PATCH] x86/alt: Break out alternative-asm into a separate header file Signed-off-by: Andrew Cooper Reviewed-by: Wei Liu Acked-by: Jan Beulich --- xen/include/asm-x86/alternative-asm.h | 31 +++++++++++++++++++++++++++ xen/include/asm-x86/alternative.h | 13 +++-------- 2 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 xen/include/asm-x86/alternative-asm.h diff --git a/xen/include/asm-x86/alternative-asm.h b/xen/include/asm-x86/alternative-asm.h new file mode 100644 index 0000000000..bf0332ef28 --- /dev/null +++ b/xen/include/asm-x86/alternative-asm.h @@ -0,0 +1,31 @@ +#ifndef _ASM_X86_ALTERNATIVE_ASM_H_ +#define _ASM_X86_ALTERNATIVE_ASM_H_ + +#ifdef __ASSEMBLY__ + +/* + * Issue one struct alt_instr descriptor entry (need to put it into + * the section .altinstructions, see below). This entry contains + * enough information for the alternatives patching code to patch an + * instruction. See apply_alternatives(). + */ +.macro altinstruction_entry orig alt feature orig_len alt_len + .long \orig - . + .long \alt - . + .word \feature + .byte \orig_len + .byte \alt_len +.endm + +#endif /* __ASSEMBLY__ */ +#endif /* _ASM_X86_ALTERNATIVE_ASM_H_ */ + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/include/asm-x86/alternative.h b/xen/include/asm-x86/alternative.h index db4f08e0e7..ba537d6b7e 100644 --- a/xen/include/asm-x86/alternative.h +++ b/xen/include/asm-x86/alternative.h @@ -1,17 +1,10 @@ #ifndef __X86_ALTERNATIVE_H__ #define __X86_ALTERNATIVE_H__ +#include #include -#ifdef __ASSEMBLY__ -.macro altinstruction_entry orig alt feature orig_len alt_len - .long \orig - . - .long \alt - . - .word \feature - .byte \orig_len - .byte \alt_len -.endm -#else +#ifndef __ASSEMBLY__ #include #include @@ -145,6 +138,6 @@ extern void alternative_instructions(void); /* Use this macro(s) if you need more than one output parameter. */ #define ASM_OUTPUT2(a...) a -#endif /* __ASSEMBLY__ */ +#endif /* !__ASSEMBLY__ */ #endif /* __X86_ALTERNATIVE_H__ */ -- 2.30.2